//
// Copyright (c) Microsoft Corporation.  All rights reserved.
//
//
// Use of this sample source code is subject to the terms of the Microsoft
// license agreement under which you licensed this sample source code. If
// you did not accept the terms of the license agreement, you are not
// authorized to use this sample source code. For the terms of the license,
// please see the license agreement between you and Microsoft or, if applicable,
// see the LICENSE.RTF on your install media or the root of your tools installation.
// THE SAMPLE SOURCE CODE IS PROVIDED "AS IS", WITH NO WARRANTIES OR INDEMNITIES.
//
//
// (C) Copyright 2006 Marvell International Ltd.
// All Rights Reserved
//
//------------------------------------------------------------------------------
//
//  File:  ioctl_cfg.h
//
//  Configuration file for the IOCTL component.
//
#ifndef __IOCTL_CFG_H
#define __IOCTL_CFG_H

#if __cplusplus
extern "C" {
#endif

//------------------------------------------------------------------------------
//  RESTRICTION
//
//  This file is a configuration file for the IOCTL component.
//
//------------------------------------------------------------------------------

//------------------------------------------------------------------------------
//
//  Define:  IOCTL_PLATFORM_TYPE/OEM
//
//  Defines the platform type and OEM string.
//
// SmartPhone and PocketPC specific platform version
//
#if defined( OSV_SP )
#define IOCTL_PLATFORM_TYPE                 (L"SmartPhone\0")
#elif defined( OSV_PPC )
#define IOCTL_PLATFORM_TYPE                 (L"PocketPC\0SSDK\0")
#else
#define IOCTL_PLATFORM_TYPE                 (L"Windows CE\0")
#endif
#define IOCTL_PLATFORM_OEM                  (L"Marvell")

//------------------------------------------------------------------------------
//  Define:  IOCTL_PROCESSOR_VENDOR/NAME/CORE
//
//  Defines the processor information
//

#define IOCTL_PROCESSOR_VENDOR              (L"Marvell")
#define IOCTL_PROCESSOR_NAME                (L"PXA3xx")
#define IOCTL_PROCESSOR_CORE                (L"ARM920T")


//------------------------------------------------------------------------------
//  Define:  IOCTL_HAL_GET_DEVICE_INFO - Platform Manufacture & Platform Name
//
//  Defines the Platform information, ODM/OEM need to modify it while builing products
//

#define IOCTL_PLATFORM_MANUFACTURER         (L"Marvell")
#define IOCTL_PLATFORM_NAME                 (L"LITTLETON")


//------------------------------------------------------------------------------
//
//  Define:  IOCTL_PROCESSOR_INSTRUCTION_SET
//
//  Defines the processor instruction set information
//
#define IOCTL_PROCESSOR_INSTRUCTION_SET     (0)
#define IOCTL_PROCESSOR_CLOCK_SPEED	        (0)

#define EBOOT_GET_BSP_ARGS_FID 4000
#define SET_LCD_ARGS_FID	4002
#define IOCTL_GET_BSP_ARGS 		CTL_CODE(FILE_DEVICE_HAL, (EBOOT_GET_BSP_ARGS_FID), METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_HAL_SET_LCD		CTL_CODE(FILE_DEVICE_HAL, (SET_LCD_ARGS_FID), METHOD_BUFFERED, FILE_ANY_ACCESS)

#define IPM_FID 4001
#define IOCTL_IPM_KERNEL     		CTL_CODE(FILE_DEVICE_HAL, (IPM_FID), METHOD_BUFFERED, FILE_ANY_ACCESS)



#define GET_PHYSICAL_MEM_FID   4004
#define IOCTL_GET_PHYSICAL_ADDRESS    CTL_CODE(FILE_DEVICE_HAL, (GET_PHYSICAL_MEM_FID), METHOD_BUFFERED, FILE_ANY_ACCESS)
#define IOCTL_SET_PHYSICAL_ADDRESS     CTL_CODE(FILE_DEVICE_HAL, (GET_PHYSICAL_MEM_FID+1), METHOD_BUFFERED, FILE_ANY_ACCESS)
//------------------------------------------------------------------------------

#if __cplusplus
}
#endif

#endif
